package com.hqyj.zss.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hqyj.zss.dao.MenusDao;
import com.hqyj.zss.pojo.Menus;
import com.hqyj.zss.pojo.PageData;
import com.hqyj.zss.service.MenusService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class MenusServiceImpl implements MenusService {
    @Autowired
    private MenusDao menusDao;
    @Override
    public PageData<Menus> queryAllMenusByPage(int pageNumber, int pageSize) {
        //使用分页插件, 拦截下一次mybatis的查询
        PageHelper.startPage(pageNumber,pageSize);
        //查询全部用户信息
        List<Menus> menusList = menusDao.queryAllMenusByPage();
        //创建pageInfo，pageInfo会计算分页相关信息
        PageInfo<Menus> pageInfo = new PageInfo<>(menusList);
        //创建我们自己的数据模型
        PageData<Menus> pageData = new PageData<>();

        pageData.setCurrentPage(pageNumber);
        pageData.setPageSize(pageSize);
        //填充总页数数据
        pageData.setTotalPage(pageInfo.getPages());
        //填充总记录数
        pageData.setTotalSize((int)pageInfo.getTotal());

        if(pageInfo.isHasNextPage()){
            //有下一页，设置下一页的页码
            pageData.setNextPage(pageInfo.getNextPage());
        }else{
            //没有下一页，就是尾页
            pageData.setNextPage(pageInfo.getPages());
        }
        if(pageInfo.isHasPreviousPage()){
            //有上一页，设置上一页的页码
            pageData.setPreviousPage(pageInfo.getPrePage());
        }else{
            //没有上一页，设置为首页
            pageData.setPreviousPage(1);
        }
        //设置每页的用户记录信息
        pageData.setList(pageInfo.getList());

        return pageData;
    }

    @Override
    public int insertMenus(Menus menus) {
        return menusDao.insertMenus(menus);
    }

    @Override
    public int updateMenus(Menus menus) {
       return menusDao.updateMenus(menus);
    }

    @Override
    public Menus queryByMenusId(int menusId) {
        return menusDao.queryByMenusId(menusId);
    }

    @Override
    public int delByMenusId(int menusId) {
        return menusDao.delByMenusId(menusId);
    }

    @Override
    public PageData<Menus> queryAllMenusByClass(String mClass, int pageNumber, int pageSize) {
        //使用分页插件, 拦截下一次mybatis的查询
        PageHelper.startPage(pageNumber,pageSize);
        //查询全部用户信息
        List<Menus> menusList = menusDao.queryAllByClass(mClass);
        //创建pageInfo，pageInfo会计算分页相关信息
        PageInfo<Menus> pageInfo = new PageInfo<>(menusList);
        //创建我们自己的数据模型
        PageData<Menus> pageData = new PageData<>();

        pageData.setCurrentPage(pageNumber);
        pageData.setPageSize(pageSize);
        //填充总页数数据
        pageData.setTotalPage(pageInfo.getPages());
        //填充总记录数
        pageData.setTotalSize((int)pageInfo.getTotal());

        if(pageInfo.isHasNextPage()){
            //有下一页，设置下一页的页码
            pageData.setNextPage(pageInfo.getNextPage());
        }else{
            //没有下一页，就是尾页
            pageData.setNextPage(pageInfo.getPages());
        }
        if(pageInfo.isHasPreviousPage()){
            //有上一页，设置上一页的页码
            pageData.setPreviousPage(pageInfo.getPrePage());
        }else{
            //没有上一页，设置为首页
            pageData.setPreviousPage(1);
        }
        //设置每页的用户记录信息
        pageData.setList(pageInfo.getList());

        return pageData;
    }

   /* @Override
    public PageData<Menus> queryByMenusName(int pageNumber, int pageSize,String menusName) {
        //使用分页插件, 拦截下一次mybatis的查询
        PageHelper.startPage(pageNumber,pageSize);
        //查询全部用户信息
        List<Menus> menusList = menusDao.queryByMenusName(menusName);
        //创建pageInfo，pageInfo会计算分页相关信息
        PageInfo<Menus> pageInfo = new PageInfo<>(menusList);
        //创建我们自己的数据模型
        PageData<Menus> pageData = new PageData<>();

        pageData.setCurrentPage(pageNumber);
        pageData.setPageSize(pageSize);
        //填充总页数数据
        pageData.setTotalPage(pageInfo.getPages());
        //填充总记录数
        pageData.setTotalSize((int)pageInfo.getTotal());

        if(pageInfo.isHasNextPage()){
            //有下一页，设置下一页的页码
            pageData.setNextPage(pageInfo.getNextPage());
        }else{
            //没有下一页，就是尾页
            pageData.setNextPage(pageInfo.getPages());
        }
        if(pageInfo.isHasPreviousPage()){
            //有上一页，设置上一页的页码
            pageData.setPreviousPage(pageInfo.getPrePage());
        }else{
            //没有上一页，设置为首页
            pageData.setPreviousPage(1);
        }
        //设置每页的用户记录信息
        pageData.setList(pageInfo.getList());

        return pageData;
    }*/
}
